package com.jyw.system.service.impl;

import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson2.JSONObject;
import com.jyw.common.utils.DateUtils;
import com.jyw.system.domain.SysConfig;
import com.jyw.system.domain.vo.SysOrderReminderConfigVo;
import com.jyw.system.enums.OtherConfigEnum;
import com.jyw.system.service.ISysConfigService;
import com.jyw.system.service.ISysOrderReminderConfigService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * @author Created by ZhangCheng on 2024/01/11 (系统工单提醒配置)
 */
@Service
public class SysOrderReminderConfigServiceImpl implements ISysOrderReminderConfigService {

    @Resource
    private ISysConfigService sysConfigService;


    @Override
    public SysOrderReminderConfigVo getConfig() {
        SysConfig sysConfig = sysConfigService.findConfigByKey(OtherConfigEnum.ORDER_REMINDER.getKey());
        if (sysConfig != null && StrUtil.isNotEmpty(sysConfig.getConfigValue())) {
            return JSONObject.parseObject(sysConfig.getConfigValue(), SysOrderReminderConfigVo.class);
        }
        return null;
    }

    @Override
    public SysOrderReminderConfigVo getDefaultConfig() {
        SysOrderReminderConfigVo configVo=getConfig();
        if(configVo!=null){
            return configVo;
        }
        return new SysOrderReminderConfigVo();
    }

    @Override
    public void updateConfig(SysOrderReminderConfigVo sysOrderReminderConfigVo) {
        SysConfig sysConfig = sysConfigService.findConfigByKey(OtherConfigEnum.ORDER_REMINDER.getKey());
        String configValue = JSONObject.toJSONString(sysOrderReminderConfigVo);
        if (sysConfig != null) {
            sysConfig.setConfigValue(configValue);
            sysConfig.setUpdateTime(DateUtils.getNowDate());
            sysConfigService.updateConfig(sysConfig);
        } else {
            sysConfigService.initConfig(configValue,OtherConfigEnum.ORDER_REMINDER);
        }
    }
}
